package com.bdqn.spark.chapter05.value

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark05_RDD_Operator_Transform_Test {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf()
      .setMaster("local[*]")
      .setAppName("operator-glom-test")
    val sc = new SparkContext(sparkConf)

    val sourceRDD: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4, 5, 6), 2)

    // 1, 2, 3, 4
    // [1 2] [3 4]
    // 2   4
    // 6
    val glomRDD: RDD[Array[Int]] = sourceRDD.glom()

    // Array(1, 2) Array(3, 4)
    // 2 4
    val resultRDD: RDD[Int] = glomRDD.map(
      arr => {
        arr.max
      }
    )

    // Array(2, 4)
    val ints: Array[Int] = resultRDD.collect()
    println(ints.sum) // scala中对集合中的数据求和


    sc.stop()
  }
}
